//CG
Shader "Pao/BasicGrammar"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "" {}
        _Color ("Color", Color) = (1,1,1,1)
        _Scale ("Scale", Float) = 1

        [Toggle(ReturnColorOnly)] _ReturnColorOnly_suibianqu("ReturnColorOnly", float) = 0

    }
    SubShader
    {
        Tags
        {
            "RenderType" = "Transparent"
            "Queue" = "Transparent"
            "IgnoreProjector" = "True"
        }
        LOD 200

        // No culling or depth
        Cull Off 
        ZWrite Off 
        ZTest Always

        Pass
        {
            Name "Pass11_in urp"

            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #pragma multi_compile_local _ ReturnColorOnly
            #pragma multi_compile_local _ CC DD

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex_OS : POSITION;
                float2 uv_OS : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };

            uniform sampler2D _MainTex;//sampler+texture2D
            CBUFFER_START(UnityPerMaterial)
                uniform float4 _MainTex_ST;
                uniform float4 _Color;
            CBUFFER_END

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex_OS);
                o.uv = TRANSFORM_TEX(v.uv_OS, _MainTex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target//COLOR
            {
                fixed4 col = tex2D(_MainTex, i.uv);
                col.rgb = _Color.rgb * col.rgb;
                // just invert the colors
                // col.rgb = 1 - col.rgb;
                 return col;
            }
            ENDCG
        }

        // Pass
        // {
        //     // Tags{ "LightMode" = "UniversalForward"}
        //     Name "Pass22_in urp"

        //     CGPROGRAM
        //     #pragma vertex vert
        //     #pragma fragment frag

        //     #pragma multi_compile_local _ ReturnColorOnly
        //     #pragma multi_compile_local _ CC DD

        //     #include "UnityCG.cginc"

        //     struct appdata
        //     {
        //         float4 vertex_OS : POSITION;
        //         float2 uv_OS : TEXCOORD0;
        //     };

        //     struct v2f
        //     {
        //         float2 uv : TEXCOORD0;
        //         float4 vertex : SV_POSITION;
        //     };

        //     uniform sampler2D _MainTex;//sampler+texture2D
        //     CBUFFER_START(UnityPerMaterial)
        //         uniform float4 _MainTex_ST;
        //         uniform float4 _Color;
        //     CBUFFER_END

        //     v2f vert (appdata v)
        //     {
        //         v.vertex_OS.xy +=100;
        //         v.vertex_OS.z -= 0.1;
        //         v2f o;
        //         o.vertex = UnityObjectToClipPos(v.vertex_OS);
        //         o.uv = TRANSFORM_TEX(v.uv_OS, _MainTex);
        //         return o;
        //     }

        //     fixed4 frag (v2f i) : SV_Target//COLOR
        //     {
        //         fixed4 col = tex2D(_MainTex, i.uv);
        //         // just invert the colors
        //         col.rgb = 1 - col.rgb;
        //         return col;
        //     }
        //     ENDCG
        // }

        // Pass
        // {
        //     // Tags{ "LightMode" = "UniversalForward"}
        //     Name "Pass22"
        //     CGPROGRAM
        //     #pragma vertex vert
        //     #pragma fragment frag

        //     #include "UnityCG.cginc"

        //     struct appdata
        //     {
        //         float4 vertex : POSITION;
        //         float2 uv : TEXCOORD0;
        //     };

        //     struct v2f
        //     {
        //         float2 uv : TEXCOORD0;
        //         float4 vertex : SV_POSITION;
        //     };

        //     sampler2D _MainTex;
        //     CBUFFER_START(UnityPerMaterial)
        //     uniform float4 _MainTex_ST;
        //     uniform float4 _Color;
        //     CBUFFER_END

        //     v2f vert (appdata v)
        //     {
        //         v.vertex.xy +=1;
        //         v.vertex.z -= 10;

        //         v2f o;
        //         o.vertex = UnityObjectToClipPos(v.vertex);
        //         o.uv = TRANSFORM_TEX(v.uv, _MainTex);;
        //         return o;
        //     }

        //     fixed4 frag (v2f i) : SV_Target
        //     {
        //         fixed4 col = tex2D(_MainTex, i.uv);
        //         // just invert the colors
        //         // col.rgb = 1 - col.rgb;
        //         return col;
        //     }
        //     ENDCG
        // }
    }

    // SubShader
    // {
    //     Tags
    //     {
    //         "RenderType" = "Transparent"
    //         "IgnoreProjector" = "True"
    //     }
    //     LOD 100

    //     // No culling or depth
    //     Cull Off 
    //     ZWrite Off 
    //     ZTest Always

    //     Pass
    //     {
    //         Name "Pass11"

    //         CGPROGRAM
    //         #pragma vertex vert
    //         #pragma fragment frag

    //         #pragma multi_compile_local _ ReturnColorOnly
    //         #pragma multi_compile_local _ CC DD

    //         #include "UnityCG.cginc"

    //         struct appdata
    //         {
    //             float4 vertex_OS : POSITION;
    //             float2 uv_OS : TEXCOORD0;
    //         };

    //         struct v2f
    //         {
    //             float2 uv : TEXCOORD0;
    //             float4 vertex : SV_POSITION;
    //         };

    //         v2f vert (appdata v)
    //         {
    //             v2f o;
    //             o.vertex = UnityObjectToClipPos(v.vertex_OS);
    //             o.uv = v.uv_OS;
    //             return o;
    //         }

    //         uniform sampler2D _MainTex;//sampler+texture2D
    //         uniform float4 _Color;

    //         fixed4 frag (v2f i) : SV_Target//COLOR
    //         {
    //             fixed4 col = tex2D(_MainTex, i.uv);
    //             // just invert the colors
    //             // col.rgb = 1 - col.rgb;
    //              return col;
    //         }
    //         ENDCG
    //     }

    //     Pass
    //     {
    //         Name "Pass22"
    //         CGPROGRAM
    //         #pragma vertex vert
    //         #pragma fragment frag

    //         #include "UnityCG.cginc"

    //         struct appdata
    //         {
    //             float4 vertex : POSITION;
    //             float2 uv : TEXCOORD0;
    //         };

    //         struct v2f
    //         {
    //             float2 uv : TEXCOORD0;
    //             float4 vertex : SV_POSITION;
    //         };

    //         sampler2D _MainTex;
    //         float4 _MainTex_ST;

    //         v2f vert (appdata v)
    //         {
    //             v.vertex.xy +=1;
    //             v.vertex.z -= 10;

    //             v2f o;
    //             o.vertex = UnityObjectToClipPos(v.vertex);
    //             o.uv = TRANSFORM_TEX(v.uv, _MainTex);;
    //             return o;
    //         }

    //         fixed4 frag (v2f i) : SV_Target
    //         {
    //             fixed4 col = tex2D(_MainTex, i.uv);
    //             // just invert the colors
    //             col.rgb = 1 - col.rgb;
    //             return col;
    //         }
    //         ENDCG
    //     }
    // }

    // FallBack "Sprites/Default"
}
